1. Field of the Invention
This invention relates to the field of secure digital memory systems for computers and, more particularly, relates to memory systems which protect against attempts to copy the contents of a read only memory (ROM) portion of the memory system.
2. Discussion of the Related Art
Computer software or programs are often supplied to data processing users with the code embodied in a read only memory (ROM). The use of ROM based software is common in personal computers and other applications of microcomputers such as in video games and the like. ROM based software for these systems includes both systems software and application software. Because significant sums of money are required to develop the programs for such devices, the programs of which are incorporated into ROM's, a problem arises because of the ease with which the contents of a typical ROM can be read; and once the contents have been obtained, then the programming or software can be relatively easily copied to the financial detriment of the developer.
Various approaches to prevent copying of the programs stored in ROM chips have been proposed. One approach is to encrypt the addresses and the data transmitted between the ROM and the central processor unit (CPU) of a data processing system. A disadvantage of this approach is that a person who knows or can determine the encryption circuitry can defeat the encryption method and copy the software of the ROM device.
Another approach is to monitor program flow and generate address signals within the ROM itself. In this way attempts to read information from the ROM without executing the program itself are detected and only valid program execution paths are allowed. A program providing such monitoring is described in U.S. Pat. No. 4,377,844 which issued to Marc Kaufman on Mar. 22, 1983. Kaufman's patent teaches an address translating apparatus which translates an address from a conventional address register in a conventional central processing unit to an internal address for addressing the internal ROM memory. The address translating apparatus includes means which are responsive to a current external memory address and a signal generated in response to a previous memory address to provide the current internal memory address. Kaufman's address translating apparatus also requires the use of an auxiliary memory device. The problem with the Kaufman address translator is that it requires a complicated arrangement of counters and address generation circuits to accomplish the desired result. The complexity of this circuitry makes it impractical for use in a inexpensive ROM based software package.
Thus, a need has been felt for a relatively simple system to prevent programs stored in ROM devices from being copied, a system that is relatively economical to implement and which does not interfere with the operation of the computer systems that utilizes the memories.